#!/bin/bash

# 陈恒律师网站自动部署脚本
# 功能：拉取代码、安装依赖、构建项目
# 使用：./scripts/deploy.sh 或通过 Git Webhook 自动触发

echo "================================"
echo "🚀 开始部署..."
echo "================================"
echo "🕐 时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo ""

# 进入项目根目录（脚本在 scripts/ 目录下，需要回到上一级）
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
cd "$PROJECT_ROOT" || exit 1

echo "📁 项目目录: $PROJECT_ROOT"

# 设置环境变量（宝塔面板 Node.js 路径）
NODEJS_PATH="/www/server/nodejs/v22.19.0/bin"
export PATH="$NODEJS_PATH:$PATH"

# 确保脚本有执行权限
chmod +x "$SCRIPT_DIR/deploy.sh" 2>/dev/null || true

# 拉取最新代码
echo "📥 拉取代码..."
echo "   当前分支: $(git branch --show-current 2>/dev/null || echo 'unknown')"
echo "   远程仓库: $(git config --get remote.origin.url 2>/dev/null || echo 'not configured')"

# 获取当前分支名（支持 main 或 master）
CURRENT_BRANCH=$(git branch --show-current 2>/dev/null || echo "main")
if [ -z "$CURRENT_BRANCH" ]; then
    CURRENT_BRANCH="main"
fi

git fetch origin 2>&1 | head -5
git reset --hard "origin/$CURRENT_BRANCH" 2>/dev/null || git reset --hard "origin/main" 2>/dev/null || {
    echo "⚠️  无法重置到远程分支，尝试直接拉取..."
    git pull origin "$CURRENT_BRANCH" 2>/dev/null || git pull origin main 2>/dev/null || {
        echo "❌ 拉取代码失败！"
        exit 1
    }
}

# 安装依赖
echo "📦 安装依赖..."
pnpm install --frozen-lockfile

# 清理旧构建（解除宝塔 .user.ini 保护）
echo "🧹 清理旧构建..."
find .vitepress/dist -name ".user.ini" -exec chattr -i {} \; 2>/dev/null || true
rm -rf .vitepress/dist

# 构建项目
echo "🔨 构建项目..."
if ! pnpm build; then
    echo "❌ 构建失败！"
    exit 1
fi

echo ""
echo "================================"
echo "✅ 部署完成！"
echo "================================"
echo "🕐 完成时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo ""

# 自动配置定时任务（如果未配置）
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "⏰ 检查定时任务配置"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

if ! crontab -l 2>/dev/null | grep -q "cms:update"; then
    echo "📝 未检测到定时任务，正在自动配置..."
    
    CRON_JOB="0 2 * * * cd $PROJECT_ROOT && $NODEJS_PATH/pnpm cms:update >> /tmp/cms-update.log 2>&1"
    CRON_NAME="# CMS自动更新法治新闻"
    
    # 添加定时任务
    (crontab -l 2>/dev/null; echo ""; echo "$CRON_NAME"; echo "$CRON_JOB") | crontab -
    
    if [ $? -eq 0 ]; then
        echo "✅ 定时任务配置成功"
        echo "   任务: 每天凌晨 2:00 自动更新法治新闻"
        echo "   日志: /tmp/cms-update.log"
    else
        echo "⚠️  定时任务配置失败，请手动配置"
        echo "   运行: crontab -e"
        echo "   添加: $CRON_JOB"
    fi
else
    echo "✅ 定时任务已配置"
fi

echo ""
echo "💡 提示："
echo "- 查看构建输出: .vitepress/dist"
echo "- 手动更新新闻: pnpm cms:update"
echo "- 查看定时任务: crontab -l"
echo ""

